

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;

import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Tweet;
import twitter4j.Twitter;

import twitter4j.TwitterFactory;

public class TwitterHelper
{
	Twitter twitter;

	public TwitterHelper()
	{
		twitter = new TwitterFactory().getInstance();
	}

	public ArrayList<Tweet> getTweets(String palavraChave, long lastId)
	{
		Query query = new Query(palavraChave);
		QueryResult result = null;
		int paginaAtual;
		ArrayList<Tweet> resultadoBusca;
		boolean flagAcabou = false;

		resultadoBusca = new ArrayList<Tweet>();
		paginaAtual = 0;
		while (!flagAcabou)
		{
			paginaAtual++;
			query.page(paginaAtual);
			if(lastId != -1){
				query.setSinceId(lastId);	
			}
			
			try
			{
				result = twitter.search(query);
			}
			catch (Exception e)
			{
				//e.printStackTrace();
				return resultadoBusca;
			}
			for (Tweet t : result.getTweets()){
				if (calcDiferencaHoras(t.getCreatedAt()) > 1.0 || paginaAtual > 10){ //tempo em horas
					flagAcabou = true;
					break;
				}
				/**
				 * lembrar de tirar os retweets
				 */
				resultadoBusca.add(t);
			}
			
			if(result.getTweets().size()==0)flagAcabou = true;
		}

		return resultadoBusca;

	}
	public double calcDiferencaHoras(Date dataTweet){
		double diff = Calendar.getInstance().getTime().getTime() - dataTweet.getTime();
		return diff/1000/60/60;   

		
	}
}
